package Iterator;

public class NameRepository implements Container{
    // 实现了Container 接口的实体类, 负责实现 Iterator 接口

    public String[] names = {"csl", "zyc", "lkx", "zxh"};

    @Override
    public Iterator getIterator() {
        return new NameIterator();
    }


    // 创建了 私有的内部类
    private class NameIterator implements Iterator{

        int index;  // 指示索引

        @Override
        public Object next() {
            if (hasNext()){
                return names[index++];
            }
            return null;  // 没有返回空对象
        }

        @Override
        public boolean hasNext() {
            if (index < names.length){
                return true;
            }
            return false;  // 不存在返回 false
        }
    }

    /*
        NameIterator 是 NameRepository 的私有内部类, 用于 帮助 NameRepository类 返回一个 迭代器叫NameIterator .
        返回迭代内容的具体实现 是在 私有的迭代器类中
     */


}
